package com.tanhua.server.service;

import com.tanhua.model.db.UserInfo;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

/**
 * 模拟用户service
 *   在需要操作Redis的方法上配置注解
 */
@Service
public class UserInfoService {
    //根据id查询

    /**
     *value：名称空间（文件夹名）
     * key：储存的Redis的key （规则：名称空间：：key）
     */
    @Cacheable(value = "UserInfo",key = "#userId")
    public UserInfo queryById(Long userId) {
        System.out.println("从数据库中查询");
        //从数据库查询
        UserInfo user = new UserInfo();
        user.setId(userId);
        user.setNickname("ceshi");
        return user;
    }

    //根据id修改
    //当执行此注解的方法是，自动的删除Redis的指定数据
    @CacheEvict(value = "UserInfo",key = "#userInfo.id")
    public void update(UserInfo userInfo) {
        System.out.println("已更新数据库中的信息");
    }
}
